The present invention relates generally to communication systems and more particularly, to descrambling scrambled data transmitted over a communication channel.
In various contemporary communications systems such as code division multiple access (CDMA), Worldwide Interoperability for Microwave Access (WiMAX), Global System for Mobile Communications (GSM), Long Term Evolution (LTE), and so forth, communication signals belonging to multiple users are transmitted using shared frequency channels. Techniques, such as scrambling of the communication signals, are used to enable transmission of multiple user data on shared frequency channels without inter-user interference.
Scrambling user communication signals entails generating a unique scrambling code (a predefined flag bit sequence) at a transmitter end corresponding to the user. The scrambling code is used to encode the digital equivalents of the communication signals to obtain scrambled user data. The scrambled user data is transmitted to the receiver along with the scrambling code. Subsequently, the receiver decodes the scrambled data using the scrambling code to obtain descrambled data.
Scrambling may be accomplished by performing various mathematical and logical operations on the user data and the scrambling code. For example, a logical bitwise XOR operation is performed at the transmitter on the user data and the scrambling code to obtain scrambled user data. The scrambled data is thereafter transmitted to the receiver. The conversion of the analog user communication signals into scrambled user data includes several processing stages such as cyclic redundancy check (CRC), channel coding, and rate matching. Scrambling is performed as described above to obtain the scrambled user data. Further, modulation, precoding, and Radio Bearer (RB) mapping are performed on the scrambled data before it is transmitted to the receiver.
At the receiver, the received signal is processed to recover the scrambled user data. Due to limitations in communication systems, the probabilistic estimates for each recovered bit of the scrambled data sequence are obtained. The probabilistic estimates, also known as log likelihood ratios (LLRs), soft values, or equalized demodulated probabilistic estimates, indicate the probability of whether a recovered bit of a scrambled user data sequence is binary 1 or 0. Each probability estimate is represented in binary form using n bits, where n is a positive integer. After obtaining the probabilistic estimates, descrambling is performed to obtain the user data. The procedure used to perform descrambling depends on the scrambling procedure used. In the example described above, when the user data is encoded by bitwise logical XOR, the LLRs are negated based on the values of corresponding bits of the scrambling code used to recover the user data. Thus, an LLR is negated when the corresponding bit value of the scrambling code is 1 and it is not negated when the corresponding bit value is 0.
The above descrambling operation including negation is performed by reading one bit of the scrambling code and a corresponding one LLR per operational cycle. Then, based on the value of the scrambling bit, the LLR is negated. Since, the negation is performed by reading one scrambling bit and the corresponding one LLR per operational cycle, the process of descrambling requires many operational cycles for a relatively large number of sets of scrambled data. This leads to a high millions of cycles per second (MCPS), which in turn increases execution time.
It would be advantageous to improve the efficiency of the descrambling process, reduce MCPS, and decrease execution time.